2. 理解 RMSNorm

RMSNorm:大模型为什么不用 LayerNorm,而改用 RMSNorm?

在现代大语言模型(LLM)中,例如 LLaMA、Qwen、Mistral、DeepSeek 等,越来越多的模型开始使用 RMSNorm(Root Mean Square Normalization,均方根归一化),而不是 Transformer 早期广泛采用的 LayerNorm

RMSNorm 最早由 Biao Zhang 和 Rico Sennrich 在 2019 年的论文《Root Mean Square Layer Normalization》中提出。作者发现:

对于深度神经网络来说,真正重要的可能只是控制激活值的尺度(Scale),而不一定需要像 LayerNorm 那样强制把均值变成 0。

论文地址:


一、先理解 LayerNorm

在 Transformer 中,LayerNorm 的计算公式为:

y=xμσ2+ϵγ+β

其中:


一个简单例子

假设输入向量:

x=[2,4,6]

第一步:计算均值

μ=2+4+63=4

第二步:减去均值

xμ=[2,0,2]

第三步:计算标准差

σ=(2)2+02+2231.633

第四步:归一化

[1.225,0,1.225]

此时数据满足:


LayerNorm 在做什么?

实际上 LayerNorm 做了两件事情:

1. Centering(中心化)

将均值变成 0:

xxμ

2. Scaling(尺度归一化)

控制数据整体大小:

xμσ

因此 LayerNorm 同时控制:


二、作者发现了什么?

RMSNorm 论文提出了一个很有意思的问题:

神经网络真的需要“均值归零”吗?

换句话说:

LayerNorm 中的两个步骤:

是否都必不可少?

作者通过大量实验发现:

真正重要的似乎是尺度归一化,而不是均值归零。

于是他们尝试直接删除 LayerNorm 中的去均值操作。

这就是 RMSNorm。


三、RMSNorm 的定义

RMSNorm 的公式:

y=xRMS(x)γ

其中:

RMS(x)=1di=1dxi2

d 表示向量维度。

与 LayerNorm 最大的区别是:

没有均值计算。

即:

只计算 RMS(均方根)。


四、什么是 RMS?

RMS(Root Mean Square)即:

RMS(x)=1di=1dxi2

本质上可以理解为:

向量整体大小(Magnitude)的度量。


举个例子

输入:

x=[2,4,6]

平方

[4,16,36]

求平均

4+16+363=18.67

开根号

RMS=18.674.32

归一化后:

xRMS=[0.463,0.926,1.389]

整个过程没有任何均值计算。


五、直观理解 RMSNorm

假设有三个学生:

学生 分数
A 60
B 80
C 100

LayerNorm 的思路

先计算平均分:

80

然后得到:

学生 相对平均值
A -20
B 0
C +20

LayerNorm关心的是:

谁高于平均值?谁低于平均值?

也就是说:

它关注数据的相对位置。


RMSNorm 的思路

RMSNorm 完全不关心平均值。

它只关心:

这些数字整体是不是太大了?

例如:

[60,80,100]

全部乘以 10:

[600,800,1000]

RMSNorm 会自动把整体尺度缩回来。

因此:

LayerNorm

控制:

RMSNorm

只控制:


六、为什么这样仍然有效?

这是 RMSNorm 最核心的发现。

很多训练不稳定的问题来源于:

这些问题本质上与向量大小有关。

即:

||x||

越来越大。


而 RMSNorm 已经对向量大小进行了约束:

xRMS(x)

使得不同样本的激活值维持在相似范围内。

因此:

即使不进行均值归零,模型依然能够稳定训练。

实验结果表明:

RMSNorm 在多个任务上的效果与 LayerNorm 几乎一致。


七、为什么 RMSNorm 更快?

从计算过程来看:

LayerNorm

需要:

  1. 计算均值
  2. 减均值
  3. 计算方差
  4. 开根号
  5. 归一化

RMSNorm

只需要:

  1. 平方
  2. 求平均
  3. 开根号
  4. 归一化

少了:

因此:

在超大模型中,这些优化会被放大。


八、为什么大模型普遍采用 RMSNorm?

现代 LLM 通常具有:

每层都需要执行归一化。

即使单层只节省一点计算:

节省量=单层节省×层数×Token数

最终也会转化为:

因此:

模型 归一化方式
Transformer (2017) LayerNorm
BERT LayerNorm
GPT-2 LayerNorm
LLaMA RMSNorm
Mistral RMSNorm
Qwen RMSNorm
DeepSeek RMSNorm

RMSNorm 已经成为现代大模型的主流选择。


九、从数学角度理解 RMSNorm

可以把 LayerNorm 拆解成:

LayerNorm=Centering+Scaling

即:

xμσ

其中:


而 RMSNorm 则变成:

RMSNorm=Scaling

即:

xRMS(x)

保留了最重要的尺度控制部分。

删除了中心化部分。


十、一句话总结

LayerNorm 的思想是:

先把数据移动到均值为 0,再调整尺度。

RMSNorm 的思想是:

不关心数据在哪里,只关心数据有多大。

RMSNorm 的核心发现是:

对深度神经网络而言,控制激活值的尺度通常已经足够稳定训练,而均值归零并不是必须的。

正因为这一点,RMSNorm 在保持模型效果基本不变的同时,减少了计算开销,最终成为现代大语言模型最常用的归一化方法之一。